// import _ from 'lodash'
import router from './router'
// import { getQueryObject } from '@/utils'
// import store from './store'
// import { setToken } from '@/utils/auth'
import store from '@/store'
// import { getQueryObject } from './utils/index'
// import { getQueryObject, getPageTitle } from './utils/index'

// 项目默认配置文件
// import { title, sso } from './settings'
// import { sso } from './settings'

// const whiteList = ['/login', '/auth-redirect', '/home', '/home/index', 'about', 'about/index', '/404']
router.beforeEach(async(to, from, next) => {
  // console.log('%c%s', 'color:#07CC9E;font-size:18px', '🌵：url跳转传参')
  // const urlParams = getQueryObject(to.fullPath)
  // console.log(urlParams, 'urlParams')
  // if (urlParams.token) {
  //   setToken(urlParams.token)
  //   window.sessionStorage.setItem('systoken', urlParams.token)
  // }
  if (to.meta.title) {
    document.title = to.meta.title
  }
  store.commit('settings/setPageTitle', to.meta.title)
  // const commitSelect = new Promise((resolve, reject) => {
  //   if (!store.state.selectList.selectList.custCompany) {
  //       store.dispatch('getSelectList').then(res => {
  //           resolve(res)
  //       }).catch((err) => {
  //           reject(err)
  //       })
  //   } else {
  //       resolve()
  //   }
  // })
  // Promise.all([commitSelect]).then(res => {
  //   next()
  // })
  // // set document title
  // // document.title = getPageTitle(to.meta.title, title)

  // // get token
  // let token = getToken()

  // // 如果未登录过，尝试从href中获取token，单点登录重定向携带token
  // if (sso.enable && !token) {
  //   token = getQueryObject()[sso.tokenKey]
  //   if (token) {
  //     const idx = token.lastIndexOf('#')
  //     token = idx === -1 ? token : token.substring(0, idx)
  //     console.log('get token from sso', token)
  //     // set token
  //     setToken(token)
  //   }
  // }
  // // if (!to.meta.require && to.path !== '/Login') {
  // //   // 从 session 中获取菜单
  // //   const menu = JSON.parse(sessionStorage.getItem('menu'))
  // //   // 重新配置路由
  // //   store.commit('permission/SET_ROUTES', menu)
  // //   router.replace(to.path)
  // // }

  // // 在路由配置中meta对象中requireAuth字段，如此字段为true，则必须做鉴权处理
  // if (to.matched.some(res => res.meta.requireAuth)) {
  //   // 如果已经登录了
  //   if (token) {
  //     if (to.path === '/login') {
  //       next({
  //         path: '/home'
  //       })
  //     } else {
  //       const hasRoles = store.getters.roles && store.getters.roles.length > 0
  //       if (hasRoles) {
  //         next()
  //       } else {
  //         try {
  //           // 插口配置在这儿，根据不同系统设计获取用户信息
  //           // get user info
  //           const { activeRole } = await store.dispatch('user/getInfo')
  //           // generate accessible routes map based on roles
  //           // const accessRoutes = await store.dispatch('permission/appendRoutes', roleIds)
  //           const accessRoutes = await store.dispatch('permission/generateRoutes', activeRole.sysId)
  //           // dynamically add accessible routes
  //           router.addRoutes(accessRoutes)

  //           next({
  //             ...to,
  //             replace: true
  //           })
  //           console.log('getRole')
  //         } catch (error) {
  //           console.log('获取角色失败')
  //           await store.dispatch('user/resetToken')
  //           // 此处方法判断是否支持单点登录，支持单点登录则跳转内部单点登录链接
  //           go(next, to)
  //         }
  //       }
  //     }
  //   } else {
  //     if (_.indexOf(whiteList, to.path) !== -1) {
  //       next()
  //     } else {
  //       go(next, to)
  //     }
  //   }
  // } else {
    next()
  // }
})

// function go(next, to) {
//   if (sso.enable) {
//     const host = window.location.host
//     const protocol = window.location.protocol
//     const redirectUrl = `${protocol}//${host}${sso.url}`
//     window.location.replace(redirectUrl)
//   } else {
//     // 未登录
//     // next可以传递一个路由对象作为参数 表示需要跳转到的页面
//     next({
//       name: 'Login',
//       query: { redirect: to.path } // 登录后再跳回此页面时要做的配置
//     })
//   }
// }
